Methods, systems, and media for generating an advertisement from a video stream

ABSTRACT

Methods, systems, and media for generating an advertisement from a video stream are provided. In accordance with some embodiments, the method comprises: receiving, from a first user device, advertisement parameters associated with an advertisement campaign for placing an advertisement based on the advertisement parameters, wherein the advertisement parameters include one or more keywords; associating the advertisement parameters with an identifier of the first user device; receiving, from the first user device, a live video stream; receiving, from a second user device, a request to present an advertisement; identifying the live video stream based at least in part on the one or more keywords; generating the advertisement using the live video stream and the advertisement parameters; and causing the advertisement to be presented on the second user device as the advertisement.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/193,977, filed Jun. 27, 2016, which is a continuation U.S. patentapplication Ser. No. 14/703,577, filed May 4, 2015, which is herebyincorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed subject matter relates to methods, systems, and media forgenerating an advertisement from a video stream.

BACKGROUND

Advertisements that include video can be an effective method ofadvertising a business and/or a service. However, it can be difficult tocreate and/or produce a video advertisement. For example, producing avideo advertisement can sometimes require expensive and/or difficult touse video editing equipment.

Accordingly, it is desirable to provide methods, systems, and media forgenerating an advertisement from a video stream.

SUMMARY

Methods, systems, and media for generating an advertisement from a videostream are provided.

In accordance with some embodiments of the disclosed subject matter, amethod for generating an advertisement from a video stream is provided,the method comprising: receiving, from a first user device,advertisement parameters associated with an advertisement campaign forplacing an advertisement based on the advertisement parameters, whereinthe advertisement parameters include one or more keywords; associatingthe advertisement parameters with an identifier of the first userdevice; receiving, from the first user device, a live video stream;receiving, from a second user device, a request to present anadvertisement; identifying the live video stream based at least in parton the one or more keywords; generating the advertisement using the livevideo stream and the advertisement parameters; and causing theadvertisement to be presented on the second user device as theadvertisement.

In accordance with some embodiments of the disclosed subject matter, asystem for generating an advertisement from a video stream is provided,the system comprising: a hardware processor that is programmed to:receive, from a first user device, advertisement parameters associatedwith an advertisement campaign for placing an advertisement based on theadvertisement parameters, wherein the advertisement parameters includeone or more keywords; associate the advertisement parameters with anidentifier of the first user device; receive, from the first userdevice, a live video stream; receive, from a second user device, arequest to present an advertisement; identify the live video streambased at least in part on the one or more keywords; generate theadvertisement using the live video stream and the advertisementparameters; and cause the advertisement to be presented on the seconduser device as the advertisement.

In accordance with some embodiments of the disclosed subject matter, anon-transitory computer-readable medium containing computer executableinstructions that, when executed by the processor, cause the processorto perform a method for generating an advertisement from a video streamis provided. The method comprises: receiving, from a first user device,advertisement parameters associated with an advertisement campaign forplacing an advertisement based on the advertisement parameters, whereinthe advertisement parameters include one or more keywords; associatingthe advertisement parameters with an identifier of the first userdevice; receiving, from the first user device, a live video stream;receiving, from a second user device, a request to present anadvertisement; identifying the live video stream based at least in parton the one or more keywords; generating the advertisement using the livevideo stream and the advertisement parameters; and causing theadvertisement to be presented on the second user device as theadvertisement.

In accordance with some embodiments of the disclosed subject matter, asystem for generating an advertisement from a video stream is provided,the system comprising: means for receiving, from a first user device,advertisement parameters associated with an advertisement campaign forplacing an advertisement based on the advertisement parameters, whereinthe advertisement parameters include one or more keywords; means forassociating the advertisement parameters with an identifier of the firstuser device; means for receiving, from the first user device, a livevideo stream; means for receiving, from a second user device, a requestto present an advertisement; means for identifying the live video streambased at least in part on the one or more keywords; means for generatingthe advertisement using the live video stream and the advertisementparameters; and means for causing the advertisement to be presented onthe second user device as the advertisement.

In some embodiments, the system further comprises means for performingan action based on the advertisement parameters in response todetermining that a portion of the live video stream has been selected onthe second user device.

In some embodiments, the action includes presenting directions to alocation associated with the live video stream.

In some embodiments, the advertisement parameters include text, and theadvertisement includes text presented in connection with the live videostream on the second user device.

In some embodiments, the advertisement parameters include an indicationof a time delay, and the system further comprises means for determiningwhether a period of time equivalent to the time delay has elapsed priorto causing the live video stream to be presented on the second userdevice.

In some embodiments, the advertisement parameters include an indicationof a time delay, and the system further comprises: means for receiving,from the first user device, an indication to delete the live videostream within a time period less than the time delay; and means forinhibiting presentation of the live video stream on the second userdevice.

In some embodiments, the system further comprises: means for receiving,from the first user device, an image; and means for determining that theadvertisement is to be presented on the second user device is to includea still image based at least in part on the request received from thesecond user device, wherein the means for generating the advertisementcomprise means for using the image.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the disclosed subjectmatter can be more fully appreciated with reference to the followingdetailed description of the disclosed subject matter when considered inconnection with the following drawings, in which like reference numeralsidentify like elements.

FIG. 1 shows an example of a user interface for receiving advertisementparameters in accordance with some embodiments of the disclosed subjectmatter.

FIG. 2A shows an example of a user interface for recording a live videostream in accordance with some embodiments of the disclosed subjectmatter.

FIG. 2B shows an example of a user interface for presenting anadvertisement that includes a live video stream in accordance with someembodiments of the disclosed subject matter.

FIG. 3 shows a schematic diagram of an illustrative system suitable forimplementation of mechanisms described herein for generating anadvertisement from a video stream in accordance with some embodiments ofthe disclosed subject matter.

FIG. 4 shows a detailed example of hardware that can be used in a serverand/or a user device of FIG. 3 in accordance with some embodiments ofthe disclosed subject matter.

FIG. 5 shows an example of an information flow diagram for receiving alive video stream from a first user device and generating anadvertisement that is to be presented on a second user device using thelive video stream in accordance with some embodiments of the disclosedsubject matter.

FIG. 6 shows an example of a process for receiving advertisementparameters and a live video stream and generating an advertisement usingthe live video stream and the advertisement parameters in accordancewith some embodiments of the disclosed subject matter.

DETAILED DESCRIPTION

In accordance with various embodiments, mechanisms (which can includemethods, systems, and media) for generating an advertisement from avideo stream are provided.

In some embodiments, the mechanisms described herein can receive a livevideo stream from a first user device and can generate an advertisementusing the live video stream. The generated advertisement can then bepresented on a second user device.

In some embodiments, the mechanisms described herein can receive, fromthe first user device, one or more advertisement parameters associatedwith an advertising campaign that includes an advertisement or a groupof advertisements. For example, in some embodiments, the advertisementparameters can include keywords indicating a topic of the live videostream, a location associated with the live video stream, a name of abusiness associated with the live video stream, and/or any othersuitable information. As another example, the advertisement parameterscan include text that is to be overlaid on the live video stream in theadvertisement. As yet another example, the advertisement parameters caninclude an action that is to be performed. As a more particular example,the action can include presenting directions to a location associatedwith the advertisement (e.g., at a particular time point duringpresentation of the advertisement, in response to determining that aportion of the advertisement has been selected, and/or in any othersuitable manner). As still another example, the advertisement parameterscan include pricing information associated with the advertisement, suchas a bidding price to present the advertisement, and/or any othersuitable pricing information. In some embodiments, the advertisementparameters can be associated with an identifier of the first userdevice.

Note that, although the advertisement is described herein as including alive video stream, in some embodiments, the advertisement can includeany suitable type of content. For example, in some embodiments, theadvertisement can include a pre-recorded video item, a live audiostream, a pre-recorded audio stream, a still image, and/or any othersuitable type of content.

Turning to FIG. 1, an example 100 of a user interface for receivingadvertisement parameters is shown in accordance with some embodiments ofthe disclosed subject matter. As illustrated, user interface 100 caninclude a title 102, a group of advertisement parameters 104, and aninput to submit parameters 106.

Title 102 can include any suitable title indicating content of userinterface 100. In some embodiments, title 102 can include any suitabletext, images, graphics, icons, animations, hyperlinks, and/or any othersuitable content. Note that the position of title 102 in user interface100 is an example, and title 102 can be located at any suitableposition. In some embodiments, title 102 can be omitted.

Group of advertisement parameters 104 can include any suitable inputsfor indicating parameters associated with an advertisement and/or agroup of advertisements. For example, as shown in FIG. 1 and describedbelow in connection with FIGS. 5 and 6, group of advertisementparameters can include text that is to accompany presentation of anadvertisement, keywords associated with an advertisement, a priceassociated with an advertisement (e.g., a maximum price to be paid perpresentation of the advertisement, a price to be paid for a particularnumber of presentations of the advertisement, and/or any other suitableprice), an action associated with an advertisement (e.g., causingdirections to a location associated with the advertisement to bepresented, and/or any other suitable action), and/or any other suitableparameters. In some embodiments, group of advertisement parameters 104can include any suitable user interface elements, such as text boxes,drop-down menus, checkboxes, radio buttons, and/or any other suitableuser interface elements. Note that although four advertisementparameters are included in group of advertisement parameters 104, insome embodiments, any suitable number (e.g., zero, two, five, ten,and/or any other suitable number) can be included.

Input to submit parameters 106 can be a selectable user interfaceelement that, when selected, causes data associated with group ofadvertisement parameters 104 to be transmitted, for example, to anadvertisement server (e.g., as shown in and described below inconnection with FIG. 3). In some embodiments, input to submit parameters106 can include any suitable text, images, icons, graphics, animations,and/or any other suitable content. In some embodiments, input to submitparameters 106 can be omitted.

Turning to FIG. 2A, an example 200 of a user interface for recording andtransmitting a live video stream is shown in accordance with someembodiments of the disclosed subject matter. As illustrated, userinterface 200 can include recorded video 202, a start input 204, and astop input 206.

Recorded video 202 can be any suitable presentation of a video that iscurrently being recorded by a user device presenting user interface 200.For example, in some embodiments, recorded video 202 can show a portionof an external scene that is currently being captured by a cameraassociated with the user device.

Start input 204 and stop input 206 can be used to control recording of avideo. For example, in some embodiments, selection of start input 204can cause video to begin being recorded by a camera associated with auser device presenting user interface 200. In some embodiments,selection of start input 204 can cause the live video stream to beginbeing transmitted to a server, such as an advertisement server, as shownin and described below in connection with FIG. 3. As another example, insome embodiments, selection of stop input 206 can cause recording of avideo to be stopped.

Note that, in some embodiments, any other suitable user interfaceelements can be included to control recording of a video. For example,in some embodiments, user interface 200 can include user interfaceelements that allow a portion of screen showing a video recording to bezoomed in or zoomed out. As another example, in some embodiments, userinterface 200 can include user interface elements that allowsimultaneous audio recording to be turned on or off.

Turning to FIG. 2B, an example 250 of a user interface for presenting anadvertisement that includes a live video stream is shown in accordancewith some embodiments of the disclosed subject matter. As illustrated,user interface 250 can include a logo 252, an advertisement 254, and acontent title 256.

Logo 252 can be any suitable logo associated with a provider of userinterface 250. In some embodiments, logo 252 can include any suitabletext, images, icons, graphics, animations, hyperlinks, and/or any othersuitable content. Note that the position of logo 252 in user interface250 is shown as an example, and logo 252 can be located at any suitableposition. In some embodiments, logo 252 can be omitted.

Advertisement 254 can be any suitable advertisement presented on a userdevice. For example, as shown in FIG. 2B, advertisement 254 can includea live video stream 258 presented as a pre-roll advertisement prior topresentation of other media content (e.g., such as a video, a movie, atelevision program, and/or any other suitable media content). Note that,although advertisement 254 is shown as including live video stream 258,in some embodiments, advertisement 254 can include a previously recordedvideo stream, an audio recording, a still image, and/or any othersuitable content.

In some embodiments, advertisement 254 can include any other suitablecontent, such as text 260, skip advertisement input 262, and actioninput 264. Text 260 can include any suitable text, such as text receivedfrom a group of advertisement parameters, as shown in and describedabove in connection with FIG. 1. In some embodiments, text 260 can bepresented in any suitable position relative to live video stream 258. Insome embodiments, text 260 can be omitted.

Skip advertisement input 262 can include any suitable user interfaceelement that, when selected, causes presentation of the advertisement tobe stopped and causes other content (e.g., a video, a televisionprogram, an audiobook, a document, and/or any other suitable content) tobe presented. In some embodiments, skip advertisement input 262 can bepresented and/or activated in response to determining that at least apredetermined amount of time (e.g., ten seconds, thirty seconds, and/orany other suitable time) has elapsed since presentation of advertisement254 began.

Action input 264 can be any suitable text, image, hyperlink, and/or userinterface element that, when selected, causes an action to be performed.For example, in some embodiments, selection of action input 264 cancause directions to a location associated with the advertisement to bepresented (e.g., in a new browser tab, in a new browser window, in apop-up window, and/or in any other suitable manner). As another example,in some embodiments, selection of action input 264 can cause a phonenumber associated with the advertisement (e.g., a phone number of abusiness associated with the advertisement, and/or any other suitablephone number) to be dialed from a user device presenting user interface250. As yet another example, in some embodiments, selection of actioninput 264 can cause a page presenting information (e.g., a websitecorresponding to a business associated with the advertisement, a pagepresenting a coupon associated with the advertisement, and/or any othersuitable information) to be presented. Note that, in some embodiments,action input 264 can be omitted. In some such embodiments, an action canbe performed without user interaction. For example, in some embodiments,an action can be performed at any suitable time point duringpresentation of the advertisement, as described below in connection withFIG. 5.

Content title 256 can indicate a topic of content that is to bepresented after and/or concurrently with advertisement 254. For example,in instances where advertisement 254 is presented prior to and/or duringpresentation of a video, content title 256 can indicate a title of thevideo, as shown in FIG. 2B. In some embodiments, content title 256 canbe omitted.

Turning to FIG. 3, an example 300 of hardware for generating anadvertisement using a live video stream that can be used in accordancewith some embodiments of the disclosed subject matter is shown. Asillustrated, hardware 300 can include one or more servers such as anadvertisement server 302 and a content server 304, as well as acommunication network 306, and/or one or more user devices, such as anadvertiser device 308 and an advertisement viewing device 310.

In some embodiments, advertisement server 302 can be any suitable serverfor receiving advertisement parameters and a live video stream fromadvertiser device 308 and for generating an advertisement using the livevideo stream. For example, in some embodiments, advertisement server 302can receive advertisement parameters that include one or more keywords,and can identify a received live video stream to be included in anadvertisement based on the keywords, as described below in connectionwith FIGS. 5 and 6. In some embodiments, advertisement server 302 can beomitted.

In some embodiments, content server 304 can be any suitable server forstoring media content and/or delivering such media content toadvertisement viewing device 310. For example, content server 304 can bea server that streams and/or otherwise transmits media content toadvertisement viewing device 310 via communication network 306. Mediacontent provided by content server 304 can be any suitable content, suchas video content, audio content, electronic books, documents, images,and/or any other suitable type of media content. As a more particularexample, media content can include television programs, movies,cartoons, sound effects, live-streamed content (e.g., a streaming radioshow, a live concert, and/or any other suitable type of streaming livecontent), and/or any other suitable type of media content. Media contentcan be created and/or uploaded to content server 304 by any suitableentity. For example, in some embodiments the media content can includeuser-generated content. As another example, in some embodiments, themedia content can include content created and/or uploaded by aparticular group and/or channel. In some embodiments, content server 304can be omitted.

Communication network 306 can be any suitable combination of one or morewired and/or wireless networks in some embodiments. For example,communication network 306 can include any one or more of the Internet,an intranet, a wide-area network (WAN), a local-area network (LAN), awireless network, a digital subscriber line (DSL) network, a frame relaynetwork, an asynchronous transfer mode (ATM) network, a virtual privatenetwork (VPN), and/or any other suitable communication network. Userdevices 308 and 310 can be connected by one or more communicationslinks, such as links 312 and 314, to communication network 306 that canbe linked via one or more communications links (e.g., communicationslinks 316 and/or 318) to advertisement server 302 and content server304. Communications links 312, 314, 316, and/or 318 can be anycommunications links suitable for communicating data among user devices308 and/or 310 and servers 302 and/or 304 such as network links, dial-uplinks, wireless links, hard-wired links, any other suitablecommunications links, or any suitable combination of such links.

In some embodiments, advertiser device 308 and advertisement viewingdevice 310 can be any suitable user devices. In some embodiments,advertiser user device 308 can be any user device suitable for receivingadvertisement parameters entered by a user, recording and transmitting alive stream of a video, and/or for performing any other suitablefunctions. In some embodiments, advertisement viewing device 310 can beany user device suitable for presenting an advertisement, for example,as a pre-roll video, as an image, and/or in any other suitable manner.In some embodiments, advertiser device 308 and advertisement viewingdevice 310 can be implemented as a mobile device, such as a smartphone,mobile phone, a tablet computer, a wearable computer, a laptop computer,a vehicle (e.g., a car, a boat, an airplane, or any other suitablevehicle) entertainment system, a portable media player, and/or any othersuitable mobile device. As another example, in some embodiments,advertiser device 308 and advertisement viewing device 310 can beimplemented as a non-mobile device such as a desktop computer, a set-topbox, a television, a streaming media player, a game console, and/or anyother suitable non-mobile device.

Although advertisement server 302 and content server 304 are illustratedas separate devices, the functions performed by advertisement server 302and content server 304 can be performed using any suitable number ofdevices in some embodiments. For example, in some embodiments, thefunctions performed by either of advertisement server 302 and contentserver 304 can be performed on a single server. As another example, insome embodiments, multiple devices can be used to implement thefunctions performed by advertisement server 302 and/or content server304.

Although two user devices 308 and 310 are shown in FIG. 3, any suitablenumber of user devices, and/or any suitable types of user devices, canbe used in some embodiments.

Advertisement server 302, content server 304, advertiser device 308 andadvertisement viewing device 310 can be implemented using any suitablehardware in some embodiments. For example, in some embodiments, devices302, 304, 308, and 310 can be implemented using any suitable generalpurpose computer or special purpose computer. For example, a server maybe implemented using a special purpose computer. Any such generalpurpose computer or special purpose computer can include any suitablehardware. For example, as illustrated in example hardware 400 of FIG. 4,such hardware can include hardware processor 402, memory and/or storage404, an input device controller 406, an input device 408, display/audiodrivers 410, display and audio output circuitry 412, communicationinterface(s) 414, an antenna 416, and a bus 418.

Hardware processor 402 can include any suitable hardware processor, suchas a microprocessor, a micro-controller, digital signal processor(s),dedicated logic, and/or any other suitable circuitry for controlling thefunctioning of a general purpose computer or a special purpose computerin some embodiments. In some embodiments, hardware processor 402 can becontrolled by a server program stored in memory and/or storage 404 of aserver (e.g., such as one of servers 302 and 304). For example, a serverprogram on advertisement server 302 can cause hardware processor 402 toidentify a particular live video stream suitable for inclusion in anadvertisement based on keywords associated with the live video stream,and/or perform any other suitable actions.

In some embodiments, hardware processor 402 can be controlled by acomputer program stored in memory and/or storage 404 of advertiserdevice 308. For example, the computer program can cause hardwareprocessor 402 to transmit a live video stream to advertisement server302, and/or perform any other suitable actions. In some embodiments,hardware processor 402 can be controlled by a computer program stored inmemory and/or storage 404 of advertisement viewing device 310. Forexample, the computer program can cause hardware processor 402 torequest an advertisement, present an advertisement that includes a livevideo stream, and/or perform any other suitable actions.

Memory and/or storage 404 can be any suitable memory and/or storage forstoring programs, data, media content, and/or any other suitableinformation in some embodiments. For example, memory and/or storage 404can include random access memory, read-only memory, flash memory, harddisk storage, optical media, and/or any other suitable memory.

Input device controller 406 can be any suitable circuitry forcontrolling and receiving input from one or more input devices 408 insome embodiments. For example, input device controller 406 can becircuitry for receiving input from a touchscreen, from a keyboard, froma mouse, from one or more buttons, from a voice recognition circuit,from a microphone, from a camera, from an optical sensor, from anaccelerometer, from a temperature sensor, from a near field sensor,and/or any other type of input device.

Display/audio drivers 410 can be any suitable circuitry for controllingand driving output to one or more display/audio output devices 412 insome embodiments. For example, display/audio drivers 410 can becircuitry for driving a touchscreen, a flat-panel display, a cathode raytube display, a projector, a speaker or speakers, and/or any othersuitable display and/or presentation devices.

Communication interface(s) 414 can be any suitable circuitry forinterfacing with one or more communication networks, such as network 306as shown in FIG. 3. For example, interface(s) 414 can include networkinterface card circuitry, wireless communication circuitry, and/or anyother suitable type of communication network circuitry.

Antenna 416 can be any suitable one or more antennas for wirelesslycommunicating with a communication network (e.g., communication network306) in some embodiments. In some embodiments, antenna 416 can beomitted.

Bus 418 can be any suitable mechanism for communicating between two ormore components 402, 404, 406, 410, and 414 in some embodiments.

Any other suitable components can be included in hardware 400 inaccordance with some embodiments.

Turning to FIG. 5, an example 500 of an information flow diagram forreceiving a live video stream from advertiser device 308 and causing anadvertisement that includes the live video stream to be presented onadvertisement viewing device 310 is shown in accordance with someembodiments of the disclosed subject matter. As illustrated, portions ofinformation flow diagram 500 can be executed on advertiser device 308,advertisement server 302, content server 304, and advertisement viewingdevice 310.

At 502, advertiser device 308 can transmit advertisement parameters toadvertisement server 302. In some embodiments, the advertisementparameters can be associated with an advertising campaign, which caninclude any suitable number of advertisements (e.g., one, two, five,ten, and/or any other suitable number). Note that, in some embodiments,the advertisements associated with the advertising campaign can includeany suitable type(s) and/or combination of types of advertisements, suchas live video streams, pre-recorded video streams, audio streams, text,images, and/or any other suitable types of advertisements. In someembodiments, the advertisement parameters can specify whichadvertisement in the group of advertisements is to be presented. Forexample, in some embodiments, the advertisement parameters can specifythat a live video stream is to be presented if available, but if a livevideo stream is not available a pre-recorded video or a non-videoadvertisement is to be presented. As another example, in someembodiments, the advertisement parameters can specify that a particulartype of advertisement is to be presented in connection with particulartypes of content, at particular times of day, when an advertisement slotis available at a particular price point, and/or based on any othersuitable information. In some embodiments, advertiser device 308 canreceive the advertisement parameters from a user via a user interface,as shown in and described above in connection with FIG. 1.

In addition to indicating which advertisement in a group ofadvertisements associated with an advertising campaign is to bepresented, the advertisement parameters can include any other suitableinformation associated with an advertisement and/or a group ofadvertisements. For example, in some embodiments, the advertisementparameters can include text to be presented in connection with anadvertisement, as shown in and described above in connection with FIG.2B. As another example, in some embodiments, the advertisementparameters can include one or more keywords associated with theadvertisement, which can be used to determine if the advertisement is tobe presented on a particular user device. As a more particular example,in some embodiments, the keywords can include a topic of theadvertisement, a product and/or service associated with theadvertisement, a location associated with the advertisement (e.g., alocation associated with a shop and/or a restaurant that is beingadvertised, and/or any other suitable location information), a name ofan entity associated with the advertisement (e.g., a name of a shop, aname of an owner of a shop, a name of a chef at a particular restaurant,and/or any other suitable name), and/or any other suitable information.As yet another example, in some embodiments, the advertisementparameters can include a price associated with the advertisement. As amore particular example, in some embodiments, the price can include amaximum price to be paid per impression of the advertisement, and/or anyother suitable price. As still another example, in some embodiments, theadvertisement parameters can include an action associated with theadvertisement. As a more particular example, the action can includepresenting a map indicating a location associated with the advertisementin response to determining that the advertisement has been touched,clicked, and/or otherwise selected. As another more particular example,the action can include causing the user device on which theadvertisement is presented to dial a phone number associated with theadvertisement in response to determining that the advertisement has beenselected. As yet another more particular example, the action can includecausing a particular page (e.g., a website associated with an entitycorresponding to the advertisement, a social networking page associatedwith an entity corresponding to the advertisement, and/or any othersuitable page) and/or application associated with the advertisement tobe presented in response to determining that the advertisement has beenselected.

Note that, in instances where particular advertisement parameters aretime-sensitive, the advertisement parameters can additionally includetiming information. For example, in instances where text included in theadvertisement parameters indicates information that is time-sensitive(e.g., that a particular promotion begins and/or ends at a particularday and/or time, and/or any other suitable timing information), theadvertisement parameters can additionally include the correspondingtiming information. As another example, in instances where an actionincluded in the advertisement parameters is time-sensitive (e.g., acoupon presented upon selection of the advertisement expires at aparticular time), the advertisement parameters can additionally includetiming information that causes the action to be performed only withinthe specified time period.

At 504, advertisement server 302 can associate the receivedadvertisement parameters with an identifier associated with advertiserdevice 308. For example, in some embodiments, the received advertisementparameters can be associated with a user account authenticated onadvertiser device 308, an Internet Protocol (IP) address associated withadvertiser device 308, and/or any other suitable identifyinginformation, as described below in connection with block 604 of FIG. 6.

At 506, advertiser device 506 can begin transmitting a live video streamto advertisement server 302. Note that transmission of the live videostream can begin at any suitable time period after advertisementparameters have been transmitted (e.g., a minute later, a day later, aweek later, and/or any other suitable time period). As described abovein connection with FIG. 2A, the live video stream can be captured from acamera associated with advertiser device 308. In some embodiments, thelive video stream can be transmitted to advertisement server 302 in anysuitable manner. For example, in some embodiments, portions of the livevideo stream of any suitable duration and/or size can be transmittedsequentially to advertisement server 302. Note that, although advertiserdevice 506 is generally described herein as transmitting a live videostream, in some embodiments, advertiser device 506 can additionally oralternatively transmit a pre-recorded video stream, a still image, anaudio recording, and/or any other suitable content.

Note that, in some embodiments, advertiser device 506 can create anadvertising campaign and/or cause an advertising campaign to be createdprior to recording the live video stream and/or as the live video streamis being recorded. For example, in some embodiments, a user interfacerequesting parameters associated with the advertising campaign can bepresented in response to a “start recording” input being selected onadvertiser device 506. Additionally or alternatively, in someembodiments, an advertising campaign can be created that copiesadvertisement parameters from a different advertising campaignassociated with advertiser device 506.

At 508, advertisement server 302 can receive the live video stream. Insome embodiments, advertisement server 302 can associate the receivedlive video stream with the advertisement parameters received at block504, as described below in connection with FIG. 6.

Note that, in some embodiments, advertiser device 506 can transmit anindication that the live video stream is to be deleted and/or not usedin an advertisement. In some embodiments, the indication can betransmitted within a particular time period (e.g., within five seconds,within ten seconds, and/or within any other suitable time period). Insuch instances, advertisement server 302 can delete any stored and/orbuffered portions of the received live video stream and can cause thelive video stream to not be identified for inclusion in a potentialadvertisement.

At 510, advertisement viewing device 310 can request content fromcontent server 304. In some embodiments, the content can include anysuitable content, including media content (e.g., videos, televisionprograms, movies, audio content, and/or any other suitable mediacontent), documents, web pages, and/or any other suitable content.

At 512, content server 304 can transmit the content to advertisementviewing device 310. As described above in connection with FIG. 3, insome embodiments, content server 304 can begin streaming media content(e.g., a video, a movie, a television program, and/or any other suitablecontent) to advertisement viewing device 310.

At 514, advertisement viewing device 310 can request an advertisementfrom advertisement server 302. The advertisement can be requested inresponse to any particular information. For example, in someembodiments, the advertisement can be requested in response todetermining that a particular duration of a streaming media content itemhas been presented and/or that a break in a presentation of a streamingmedia content item is approaching. Note that, in some embodiments,advertisement view device 310 can request the advertisement beforecontent is received from content server 304 (e.g., before content isrequested at block 510, immediately after content is requested at block510, and/or at any other suitable time). Additionally or alternatively,in some embodiments, content server 304 can request the advertisementfrom advertisement server 302 in response to receiving the request forcontent.

At 516, advertisement server 302 can identify the live video stream forinclusion in an advertisement to be presented on advertisement viewingdevice 310 based on the associated advertisement parameters. Forexample, as described below in connection with block 610 of FIG. 6,advertisement server 302 can identify the live video stream based onkeywords associated with the live video stream (e.g., based on keywordsincluded in the advertisement parameters received at block 502) andmetadata associated with content presented on advertisement viewingdevice 310. As another example, in some embodiments, the advertisementparameters can indicate that the live video stream is to be presented tousers viewing particular content (e.g., a particular video, a particulartelevision program, and/or any other suitable content) and/or particulartypes of content (media content of a particular genre, and/or any othersuitable types of content).

At 518, advertisement server 302 can generate an advertisement thatincludes the live video stream, and can transmit the advertisement toadvertisement viewing device 310. The advertisement can be generated inany suitable manner, as described below in connection with block 612 ofFIG. 6.

At 520, advertisement viewing device 310 can cause the advertisement,which can include the live video stream, to be presented. For example,in some embodiments, the advertisement can be presented prior topresentation of media content and/or as a break in presentation of mediacontent requested by advertisement viewing device 310. As anotherexample, in some embodiments, the advertisement can be presented as apop-up video prior to presentation of a page requested by advertisementviewing device 310. As yet another example, in some embodiments, theadvertisement can be presented as a banner at a particular location of apage requested by advertisement viewing device 310.

The advertisement can be presented in any suitable manner. For example,as shown in and described above in connection with FIG. 2B, the livevideo stream can be presented with accompanying text specified in theadvertisement parameters transmitted by advertiser device 308 at block502. As another example, the advertisement can be associated with anaction that is to be performed. In some embodiments, the action caninclude presenting directions to a location associated with theadvertisement, causing a phone number associated with the advertisementto be dialed, and/or any other suitable action. In some embodiments, asshown in and described above in connection with FIG. 2B, the action canbe performed in response to determining that a portion of theadvertisement has been selected. Additionally or alternatively, in someembodiments, the action can be performed without user interaction. Forexample, in some embodiments, the action can be performed (e.g.,directions to a location associated with the advertisement can bepresented, and/or any other suitable action) in response to determiningthat the advertisement has been presented for a particular duration oftime (e.g., that the advertisement has been presented for at least fiveseconds, and/or any other suitable duration), that a particular portionof the advertisement is currently being presented (e.g., that particulartext has been presented), and/or based on any other suitableinformation.

Turning to FIG. 6, an example 600 of a process for receivingadvertisement parameters and a live video stream from an advertiser userdevice and causing an advertisement that includes the live video streamto be presented on a second user device is shown in accordance with someembodiments of the disclosed subject matter.

Process 600 can begin by receiving advertisement parameters from anadvertiser user device at 602. As described above in connection withFIGS. 1 and 5, the advertisement parameters can be received from a userinterface presented on the advertiser user device, and can include anysuitable information related to an advertisement and/or a group ofadvertisements, such as text that is to be presented in connection withthe advertisement, keywords associated with the advertisement, an actionassociated with the advertisement, a price associated with theadvertisement, and/or any other suitable information.

Process 600 can associate the advertisement parameters with anidentifier of the advertiser user device at 604. Process 600 can use anysuitable information to associate the advertiser user device with thereceived advertisement parameters. For example, in some embodiments, theadvertisement parameters can be transmitted from the advertiser userdevice from an application installed on the advertiser user deviceand/or in connection with a user account authenticated on the advertiseruser device, and process 600 can associate the advertisement parameterswith an identifier of the application and/or the user account. Asanother example, in some embodiments, process 600 can use any othersuitable information associated with the advertiser user device, such asan IP address associated with the advertiser user device, a model numberassociated with the advertiser user device, a location associated withthe advertiser user device, and/or any other suitable information.

Process 600 can receive a live video stream from the advertiser userdevice at 606. As described above in connection with FIG. 2B and block506 of FIG. 5, the live video stream can be transmitted viacommunication network 306 from the advertiser user device to anysuitable server, such as advertisement server 302, and can betransmitted in portions and/or fragments of any suitable duration and/orsize. Note that, in some embodiments, process 600 can save the receivedvideo stream for use in the future at any suitable time (e.g., the nextday, the next week, the next month, and/or any other suitable time),and, in such instances, the received video stream can be presented as apreviously recorded video stream rather than a live video stream.

Process 600 can receive a request to present an advertisement on asecond user device at 608. In some embodiments, the request can includeany suitable information. For example, in some embodiments, the requestcan indicate a location (e.g., a city, a state, a zip code, globalpositioning system coordinates, and/or any other suitable locationinformation) associated with the second user device. As another example,in some embodiments, the request can indicate content and/or a type ofcontent that has been concurrently requested and/or is beingconcurrently presented on the second user device. As a more particularexample, in some embodiments, the request can indicate that the seconduser device is currently presenting a particular media content item(e.g., a particular video, a particular move, a particular televisionprogram, a particular audiobook, and/or any other suitable mediacontent). As another more particular example, in some embodiments, therequest can indicate that the second user device is currently presentinga particular page (e.g., a page of search results, a page associatedwith a particular social networking service, and/or any other suitablepage) and/or website. Additionally or alternatively, in someembodiments, the request can indicate a topic associated with contentrequested and/or being presented on the second user device.

At 610, process 600 can identify the live video stream for inclusion inan advertisement based on the advertisement parameters using anysuitable information and any suitable technique(s). For example, in someembodiments, process 600 can compare information included in the requestfor the advertisement received at block 608 with keywords included inthe advertisement parameters received at block 602. As a more particularexample, process 600 can determine whether the keywords are relevant toa topic of content requested and/or being presented on the second userdevice. As a specific example, if the keywords are related to arestaurant that serves pizza, and the content requested and/or beingpresented on the second user device relates to a video about makingpizza, process 600 can determine that the live video stream is relevantto the content on the second user device. As another more particularexample, process 600 can determine whether the keywords are relevant toa location associated with the second user device. As a specificexample, if process 600 determines that the keywords are associated witha restaurant located in a particular location that matches and/or isrelatively near (e.g., within a predetermined distance) a location ofthe second user device, process 600 can identify the live video streamfor inclusion in the advertisement. In some embodiments, process 600 canuse metadata associated with content (e.g., that indicates a title ofthe content, a creator of the content, a topic of the content, and/orany other suitable information) requested and/or being presented on thesecond user device to determine if the live video stream is suitable forinclusion in the advertisement.

Process 600 can generate the advertisement using the live video streamand the advertisement parameters at 612 using any suitable technique(s).For example, in some embodiments, process 600 can cause text included inthe advertisement parameters to be overlaid on the live video stream, asshown in and described above in connection with FIG. 2B. As anotherexample, in some embodiments, process 600 can include instructions withthe generated advertisement that cause a particular action to beperformed (e.g., that a particular page and/or particular information isto be presented at a particular time point after the advertisement isfirst presented, that the action is to be performed in response to aportion of the advertisement being touched, clicked, and/or selected,and/or any other suitable instructions for performing the action), asdescribed above in connection with FIGS. 2B and 5. Note that, in someembodiments, process 600 can use similar techniques to generate anadvertisement that does not include a live video stream, such as anadvertisement that includes a pre-recorded video stream, a live audiostream, a pre-recorded audio stream, a still image, and/or any othersuitable type of content.

Note that, in some embodiments, process 600 can receive an indicationfrom the advertiser user device at a time after the transmission of thelive video stream from the advertiser user device has begun thatindicates that the live video stream is not to be included in anadvertisement. In some embodiments, if the indication is received withina predetermined time period (e.g., within five seconds of initialreceipt of the live video stream, within ten seconds of initial receiptof the live video stream, and/or any other suitable time period),process 600 can delete any stored portions of the live video streamand/or can determine that the live video stream is not to be included inan advertisement presented on the second user device.

Additionally or alternatively, in some embodiments, process 600 canreceive an indication that a particular portion of the live video stream(e.g., a portion between two particular time points) is to be stored forfuture inclusion in an advertisement (e.g., in an advertisementpresented in the next week, in the next month, and/or at any othersuitable future time).

Process 600 can cause the advertisement to be presented on the seconduser device at 614 using any suitable technique(s). For example, in someembodiments, process 600 can begin causing the advertisement, includingthe live video stream, to be transmitted (e.g., from advertisementserver 302) to the second user device via communication network 306. Insuch embodiments, the live video stream can be transmitted in portionsof any suitable duration and/or size.

In some embodiments, at least some of the above described blocks of theprocesses of FIGS. 5 and 6 can be executed or performed in any order orsequence not limited to the order and sequence shown in and described inconnection with the figures. Also, some of the above blocks of FIGS. 5and 6 can be executed or performed substantially simultaneously whereappropriate or in parallel to reduce latency and processing times.Additionally or alternatively, some of the above described blocks of theprocess of FIGS. 5 and 6 can be omitted.

In some embodiments, any suitable computer readable media can be usedfor storing instructions for performing the functions and/or processesherein. For example, in some embodiments, computer readable media can betransitory or non-transitory. For example, non-transitory computerreadable media can include media such as magnetic media (such as harddisks, floppy disks, and/or any other suitable magnetic media), opticalmedia (such as compact discs, digital video discs, Blu-ray discs, and/orany other suitable optical media), semiconductor media (such as flashmemory, electrically programmable read-only memory (EPROM), electricallyerasable programmable read-only memory (EEPROM), and/or any othersuitable semiconductor media), any suitable media that is not fleetingor devoid of any semblance of permanence during transmission, and/or anysuitable tangible media. As another example, transitory computerreadable media can include signals on networks, in wires, conductors,optical fibers, circuits, any suitable media that is fleeting and devoidof any semblance of permanence during transmission, and/or any suitableintangible media.

In situations in which the systems described herein collect personalinformation about users, or make use of personal information, the usersmay be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location). In addition, certain datamay be treated in one or more ways before it is stored or used, so thatpersonal information is removed. For example, a user's identity may betreated so that no personal information can be determined for the user,or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by a content server.

Accordingly, methods, systems, and media for generating an advertisementfrom a video stream are provided.

Although the invention has been described and illustrated in theforegoing illustrative embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the invention can be madewithout departing from the spirit and scope of the invention, which islimited only by the claims that follow. Features of the disclosedembodiments can be combined and rearranged in various ways.

What is claimed is:
 1. A method for generating an advertisement from avideo stream, comprising: receiving, from a first user device,advertisement parameters for placing an advertisement, wherein theadvertisement parameters include keywords and an indication of a timedelay; associating the advertisement parameters with an identifier ofthe first user device; receiving, from the first user device, a livevideo stream and an image; receiving, from a second user device, arequest to present an advertisement; identifying the live video streambased at least in part on the one or more keywords; generating theadvertisement using the live video stream, the image, and theadvertisement parameters; receiving, from the first user device, anindication to exclude the live video stream from the advertisement;inhibiting presentation of the live video stream on the second userdevice in response to receiving the indication to exclude the live videostream and determining that amount of time elapsed since initial receiptof the live video stream is less than the time delay; determiningwhether a period of time equivalent to the time delay has elapsed priorto causing the advertisement to be presented on the second user device;and causing the advertisement, exclusive of the live video stream, to bepresented on the second user device in response to determining that theperiod of time equivalent to the time delay has elapsed.
 2. The methodof claim 1, wherein identifying the live video stream based at least inpart on the one or more keywords comprises determining whether a timepoint at which the request to present the advertisement was received iswithin a time range indicated in the advertisement parameters.
 3. Themethod of claim 1, wherein the live video stream is identified based ona media content item being presented on the second user device.
 4. Themethod of claim 1, further comprising performing an action based on theadvertisement parameters in response to determining that theadvertisement has been presented for at least a predetermined durationof time on the second user device.
 5. The method of claim 1, wherein therequest to present the advertisement includes geographic informationassociated with the second user device, and wherein the live videostream is identified based on the geographic information associated withthe second user device.
 6. The method of claim 1, further comprisingcausing the live video stream to be stored for inclusion in anadvertisement as a pre-recorded video stream presented on a third userdevice.
 7. A system for generating an advertisement from a video stream,the system comprising: a memory; and a hardware processor that, whenexecuting computer executable instructions stored in the memory, isprogrammed to: receive, from a first user device, advertisementparameters for placing an advertisement, wherein the advertisementparameters include keywords and an indication of a time delay; associatethe advertisement parameters with an identifier of the first userdevice; receive, from the first user device, a live video stream and animage; receive, from a second user device, a request to present anadvertisement; identify the live video stream based at least in part onthe one or more keywords; generate the advertisement that includes thelive video stream, the image, and the advertisement parameters; receive,from the first user device, an indication to exclude the live videostream from the advertisement; inhibit presentation of the live videostream on the second user device in response to receiving the indicationto exclude the live video stream and determining that amount of timeelapsed since initial receipt of the live video stream is less than thetime delay; determine whether a period of time equivalent to the timedelay has elapsed prior to causing the advertisement to be presented onthe second user device; and cause the advertisement, exclusive of thelive video stream, to be presented on the second user device in responseto determining that the period of time equivalent to the time delay haselapsed.
 8. A system for generating an advertisement from a videostream, the system comprising: a memory; and a hardware processor that,when executing computer executable instructions stored in the memory, isprogrammed to: receive, from a first user device, advertisementparameters for placing an advertisement, wherein the advertisementparameters include one or more keywords and an indication of a timedelay; associate the advertisement parameters with an identifier of thefirst user device; receive, from the first user device, a live videostream and an image; receive, from a second user device, a request topresent an advertisement; identify the live video stream based at leastin part on the one or more keywords; generate the advertisement usingthe live video stream, the image, and the advertisement parameters;receive, from the first user device, an indication to exclude the livevideo stream from the advertisement; inhibit presentation of the livevideo stream on the second user device in response to receiving theindication to exclude the live video stream and determining that amountof time elapsed since initial receipt of the live video stream is lessthan the time delay; determine whether a period of time equivalent tothe time delay has elapsed prior to causing the advertisement to bepresented on the second user device; and cause the advertisement,exclusive of the live video stream, to be presented on the second userdevice in response to determining that the period of time equivalent tothe time delay has elapsed.
 9. The system of claim 7, wherein the livevideo stream is identified based on a media content item being presentedon the second user device.
 10. The system of claim 7, wherein thehardware processor is further programmed to perform an action based onthe advertisement parameters in response to determining that theadvertisement has been presented for at least a predetermined durationof time on the second user device.
 11. The system of claim 7, whereinthe request to present the advertisement includes geographic informationassociated with the second user device, and wherein the live videostream is identified based on the geographic information associated withthe second user device.
 12. The system of claim 7, wherein the hardwareprocessor is further programmed to cause the live video stream to bestored for inclusion in an advertisement as a pre-recorded video streampresented on a third user device.
 13. A non-transitory computer-readablemedium containing computer executable instructions that, when executedby a processor, cause the processor to perform a method for generatingan advertisement from a video stream, the method comprising: receiving,from a first user device, advertisement parameters for placing anadvertisement, wherein the advertisement parameters include keywords andan indication of a time delay; associating the advertisement parameterswith an identifier of the first user device; receiving, from the firstuser device, a live video stream and an image; receiving, from a seconduser device, a request to present an advertisement; identifying the livevideo stream based at least in part on the one or more keywords;generating the advertisement that includes the live video stream, theimage, and the advertisement parameters; receive, from the first userdevice, an indication to exclude the live video stream from theadvertisement; inhibit presentation of the live video stream on thesecond user device in response to receiving the indication to excludethe live video stream and determining that amount of time elapsed sinceinitial receipt of the live video stream is less than the time delay;determining whether a period of time equivalent to the time delay haselapsed prior to causing the advertisement to be presented on the seconduser device; and causing the advertisement, exclusive of the live videostream, to be presented on the second user device in response todetermining that the period of time equivalent to the time delay haselapsed.
 14. The non-transitory computer-readable medium of claim 13,wherein identifying the live video stream based at least in part on theone or more keywords comprises determining whether a time point at whichthe request to present the advertisement was received is within a timerange indicated in the advertisement parameters.
 15. A non-transitorycomputer-readable medium containing computer executable instructionsthat, when executed by a processor, cause the processor to perform amethod for generating an advertisement from a video stream, the methodcomprising: receiving, from a first user device, advertisementparameters for placing an advertisement, wherein the advertisementparameters include keywords and an indication of a time delay;associating the advertisement parameters with an identifier of the firstuser device; receiving, from the first user device, a live video streamand an image; receiving, from a second user device, a request to presentan advertisement; identifying the live video stream based at least inpart on the one or more keywords; generating the advertisement using thelive video stream, the image, and the advertisement parameters; receive,from the first user device, an indication to exclude the live videostream from the advertisement; inhibit presentation of the live videostream on the second user device in response to receiving the indicationto exclude the live video stream and determining that amount of timeelapsed since initial receipt of the live video stream is less than thetime delay; determining whether a period of time equivalent to the timedelay has elapsed prior to causing the advertisement to be presented onthe second user device; and causing the advertisement, exclusive of thelive video stream, to be presented on the second user device in responseto determining that the period of time equivalent to the time delay haselapsed.
 16. The non-transitory computer-readable medium of claim 13,wherein the method further comprises performing an action based on theadvertisement parameters in response to determining that theadvertisement has been presented for at least a predetermined durationof time on the second user device.
 17. The non-transitorycomputer-readable medium of claim 13, wherein the request to present theadvertisement includes geographic information associated with the seconduser device, and wherein the live video stream is identified based onthe geographic information associated with the second user device. 18.The non-transitory computer-readable medium of claim 13, wherein themethod further comprises causing the live video stream to be stored forinclusion in an advertisement as a pre-recorded video stream presentedon a third user device.